1. Field of the Invention
The present invention relates to a mixed topology data switching system that combines a radial interconnect with a ring interconnect. More particularly, the radial interconnect permits devices to store and retrieve data using a switch, while the ring interconnect permits devices along the ring interconnect to provide notification that data has been stored for retrieval, as well as provide feedback regarding the ability or inability to retrieve such data.
2. Description of the Related Art
Although parallel busses may be advantageously used to convey data among devices, there are limits to the speed with which data may be transmitted. In order to increase the speed with which data is conveyed, previous approaches have typically centered around the use of wide parallel busses. However, as aggregate system bandwidths increase, these wide, long busses become problematic due to high pin counts and capacitance loading. Control pins as well as data pins must typically be provided, further increasing the width of the bus. It would therefore be desirable if the conveyance of data could be optimized while reducing the number of pins required.
Another commonly used data transport system is the ring. For instance, in a token ring, a single token circulates around the ring. In order to send a unit of data, a device must remove this token from the ring and replace it with the data to be transmitted. The permission to transmit rotates around the ring in a round-robin fashion. It is important to note that the ring typically provides only one token. As a result, only one device can transmit data at a given instant.
A drawback common to both parallel busses and rings is that each must be able to accommodate the aggregate of the entire system""s data transfer volume even though only a small subset of the attached devices on these interconnect systems may actually need to be involved in the data transaction. In other words, the data cannot be sent directly to only those interfaces to which the data is addressed. Rather it is broadcast to all nodes on the interconnect system. Accordingly, it would be desirable if a system capable of limiting the distribution of unnecessary data to interfaces on an interconnect scheme could be implemented.
In controlling the flow of network traffic through a switching system, it is often desirable to provide feedback to the source of the data. For instance, although a transmitting device, hereinafter referred to as a xe2x80x9csource device,xe2x80x9d may transmit or forward data to a receiving device, hereinafter referred to as a xe2x80x9cdestination device,xe2x80x9d the destination device may be incapable of handling the data. In these circumstances, the source device is often unaware that the data was not accepted by the destination device, complicating switch management. Common solutions to the problem of switch traffic management have included ensuring that all intended destination devices are xe2x80x9cready to receivexe2x80x9d prior to transmitting data on a ring or bus interconnect, or insisting that each intended destination device send an explicit acknowledgement back to the source device. Both of these approaches result in reduced efficiency of the interconnect scheme. By way of example, in a ring network, such acknowledgment is typically provided in the data frame being transmitted. As another example, in other interconnect schemes, each such device may send a separate acknowledgment, therefore adding to the traffic on the network.
In addition to controlling the flow of traffic, the data transmitted from source to destination devices is often stored in memory until the data is transmitted to the destination devices. Moreover, in a switching system available to multiple entities, multiple source devices will often simultaneously require data buffers in the shared memory. As a result, various buffer management schemes have been implemented to manage this limited resource. Two approaches are commonly used in order to manage memory available to multiple devices. First, memory is often allocated on a first come, first served basis. According to this approach, when a source device wishes to obtain data buffer space for data being sent to one or more destination devices, the data buffer space is allocated for the data if the space is available. Thus, with the first come, first served approach, an aggressive consumer of buffers may deplete the data buffer space and will therefore deny buffer access to subsequent, less aggressive consumers.
Second, a common approach to memory management is the allocation of memory on a fixed allocation basis. According to this approach, each device has a fixed segment of the memory available for its use. However, aggressive users are penalized since they may obtain only a fixed amount of memory. This is particularly disadvantageous when the system is quiet, since there is no mechanism to reallocate memory from non-aggressive users to more aggressive users.
In view of the above, it would be desirable if a traffic management scheme were established which could provide such feedback to the source of the data while minimizing traffic management overhead. Moreover, it would be desirable if a more effective mechanism for managing the memory available to a switch could be implemented.
According to one embodiment, the present invention combines the use of two data transport methods: a point-to-point radial interconnect and a ring interconnect. The radial interconnect connects interface devices to each other through the services of a central switch device to permit the transport of data. Typically, a single interface has a single dedicated radial interconnect to the central switch. These interface devices are further connected to one another via a ring interconnect to convey retrieval notifications regarding forwarding of the data (by source devices) and receipt of the data (by destination devices).
Each radial interconnect provides a narrow, high baud-rate connection to convey the actual data from and to the associated interface without being burdened by the unrelated traffic for the remaining interfaces in the system. This is accomplished through the use of a central switch device, which stores and retrieves data for the various interfaces in the system. As will be apparent from the following description, this architecture provides numerous advantages over a wide parallel bus or ring.
The ring interconnect may be used to convey a xe2x80x9cretrieval notificationxe2x80x9d (i.e., retrieval message) that may be observed by all potential retrieving interfaces. The retrieval notification notifies specific devices (xe2x80x9cdestination devicesxe2x80x9d) or interfaces that one or more frames addressed to them are available from the switch device. Moreover, the ring interconnect permits each destination device to provide feedback to the source device letting the source know whether the destination has accepted the notification provided by the source device and therefore whether the destination can retrieve the data intended for it. The feedback is particularly useful in buffer management applications. In this manner, an efficient and flexible data transport and retrieval notification system that includes a feedback path to the source of the data is provided.
According to one aspect of the invention, the switch is implemented and operated in a manner that allows data to be conveyed to and from various interfaces without burdening the interfaces with the unrelated traffic addressed to the remaining interfaces in the system. Thus, a method of storing data by a switch having a data buffer associated therewith includes receiving data from a source network device connected to the switch. More particularly, the data is sent along the radial interconnect connecting the source network device to the switch. The data is then stored in the data buffer. In order to notify the source network device that the data has been stored for retrieval by the desired destination network devices, a frame storage message indicating that the data has been successfully stored for retrieval by the destination devices is sent to the source network device via the associated radial interconnect. Since the receipt of data and acknowledgment of receipt of the data by the switch is performed via the radial interconnect, other interfaces connected to the switch are not burdened by this unrelated traffic (e.g., via the ring interconnect).
According to another aspect of the invention, a mechanism for managing the memory associated with the switch is provided. The memory associated with the switch includes a general memory available to a plurality of users associated with one or more network devices (e.g., source network device or destination network device). In addition, the memory further includes a plurality of dedicated memory segments, each of which are associated with one or more of the plurality of users. When data is received from a source network device, the data is stored in the memory such that a portion of one of the plurality of dedicated memory segments is allocated when the general memory has been depleted. Thus, if the general memory is not depleted, the data is stored in the general memory. However, if the general memory is depleted, the data is stored in an appropriate dedicated memory segment in the memory. For instance, the data may be stored in the dedicated memory segment associated with the source device (or a destination device) or a particular user of the source device (or a destination device). Once a user""s private reserve (or a device""s private reserve) is consumed, it is denied further requests for buffers. This method allows an aggressive user to claim a significant portion of the buffers without denying other users of enough buffer space to continue operating efficiently. In this manner, the management of a buffer memory system in shared memory network data switch applications is significantly improved. Thus, an aggressive consumer of buffers cannot deny buffer access to other users as is possible with the first come, first served approach. Moreover, when the system is quiet, aggressive users are not penalized as with the fixed allocation method.